package sort;

public class Sort {
   public static void selectsort(int[] arrays){
       //选择排序
       int left=0;//左边下标
       int right=arrays.length-1;//右边下标
       int minindex=left;
       int maxindex=right;
       while (left<right){
           minindex=left;
           maxindex=right;
          for (int i = left+1; i <=right ; i++) {
             if(arrays[i]<arrays[minindex]){
                minindex=i;//遍历数组如果有数比这个arrays[minindex]小
                 // 然后记录这个比这个minindex小的下标并且记录在minindex里面
             }
              if(arrays[i]>arrays[maxindex]){
                  maxindex=i;//遍历数组如果有数比这个arrays[maxindex]大
                  // 然后记录这个比这个minindex小的下标并且记录在maxindex里面
              }
          }
          swap(arrays,left,minindex);//找到数字最小的跟0下标（left）
           // 的数交换位置
//          if(left==maxindex){
//              maxindex=minindex;
//          }
          swap(arrays,right,maxindex);//找到数字最大的跟right(最右边的)
           // 数字交换位置
          left++;
          right--;
       }
   }

   private static void swap(int[] arrays, int i, int j) {
       //交换位置
      int tmp = arrays[i];
      arrays[i] = arrays[j];
      arrays[j] = tmp;
   }
}
